1
Jalan Menuju Eksekusi: Memahami Pengendali Kompilator
AI031Lesson 7
00:00

Pengatur Utama: Pengendali Kompilator

Bayangkan Pengendali Kompilator (seperti GCC) sebagai konduktor utama. Ia mengotomatiskan transformasi kompleks dari kode sumber yang dapat dibaca manusia menjadi eksekutable biner. Perjalanan ini, yaitu Jalan Menuju Eksekusi, dimulai pada Waktu Kompilasi dan meluas ke Waktu Muat dan Waktu Jalankan.

Dengan memanfaatkan Kompilasi terpisah, pengendali memproses main.c dan sum.c secara terpisah. Perubahan pada satu modul tidak mengharuskan seluruh proyek dikompilasi ulang—hanya file yang diubah yang dilewatkan melalui pra-pemroses (cpp), kompilator (cc1), dan perakitan (as) sebelum Penggabung (ld) menggabungkan hasil File Objek Relokabel.

main.ccpp/cc1/asmain.osum.ccpp/cc1/assum.oldprogPerspektif Perangkat Keras: Pemetaan Cache di 0x064C Alamat: 0 0110 0100 11xx | baris cache 32-byte Tag: 0 0110 01Set: 00Offset: 11xxAnalisis pola referensi Stride-1 menjamin throughput cache L1.

Efisiensi & Hierarki Memori

Keputusan tata letak Penggabung untuk grid[0][0] atau src[0][0] secara langsung berdampak pada Throughput dan Latensi. Dengan menyelaraskan data ke dalam baris cache 32-byte, pengendali memfasilitasi pola referensi Stride-1, meminimalkan kegagalan dingin dan menghindari eviksi pemindaian kolom. Dalam kode tinggi performa lanjutan, paralelisme loop yang dilipat ($4 \times 4$ loop dilipat) lebih jauh menyembunyikan pemetaan memori utama ke cache waktu tunda dengan mengoptimalkan siklus frekuensi jam (0x32, 0x1, 0x4, 0x51).

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>